<!DOCTYPE html>
<html prefix='jld: http://jsonld.org/test-suite/vocab# mf: http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#'>
<head>
<meta content='text/html;charset=utf-8' http-equiv='Content-Type'>
<meta content='width=device-width, initial-scale=1.0' name='viewport'>
<link href='../static/css/bootstrap/bootstrap.css' rel='stylesheet' type='text/css'>
<link href='../static/css/bootstrap/bootstrap-responsive.css' rel='stylesheet' type='text/css'>
<link href='../static/css/bootstrap/font-awesome.css' rel='stylesheet' type='text/css'>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'></script>
<script src='//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.min.js' type='text/javascript'></script>
<style>
  dd code {display: inline;}
  footer {text-align: center;}
</style>
<title>
Test case manifest vocabulary extensions
</title>
</head>
<body resource='https://json-ld.org/test-suite/vocab#'>
<meta property='dc:creator' value='Gregg Kellogg'>
<link href='https://json-ld.org/test-suite/vocab#' property='dc:identifier'>
<div class='navbar navbar-static-top'>
<div class='navbar-inner'>
<div class='row-fluid'>
<a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</a>
<a class='brand active' href='../'>
<img alt='JSON-LD logo' src='../images/json-ld-data-24.png'>
JSON-LD
</a>
<div class='nav-collapse'></div>
<ul class='nav'>
<li>
<a href='../playground/'>
<span class='icon-beer'></span>
Playground
</a>
</li>
<li>
<a href='../learn/'>
<span class='icon-book'></span>
Documentation
</a>
</li>
<li><a href="../#developers"><span class="icon-beaker"></span> Developers</a></li>
<li class='dropdown'>
<a class='dropdown-toggle' data-toggle='dropdown' href='#'>
<span class='icon-folder-open'></span>
Specifications
<b class='caret'></b>
</a>
<ul class='dropdown-menu'>
<li class='nav-header'>
<strong>
Latest
</strong>
</li>
<li>
<a href='../spec/latest/json-ld/'>
Syntax
</a>
</li>
<li>
<a href='../spec/latest/json-ld-api/'>
API
</a>
</li>
<li>
<a href='../spec/latest/json-ld-framing/'>
Framing
</a>
</li>
<li class='divider'></li>
<li class='nav-header'>
<strong>
Previous Drafts
</strong>
</li>
<li>
<a href='../spec#syntax'>
Syntax
</a>
</li>
<li>
<a href='../spec#api'>
API
</a>
</li>
<li>
<a href='../spec#framing'>
Framing
</a>
</li>
</ul>
</li>
<li>
<a href='../images/'>
<span class='icon-picture'>
Branding
</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class='hero-unit'>
<h1 property='dc:title'>Test case manifest vocabulary extensions</h1>
<p property='dc:description rdfs:comment'>Test case manifest vocabulary extensions</p>
</div>
<div class='container'>
<div class='row'>
<h2 class='span12' id='classes' style='text-align: center;'>
Test Case Classes
</h2>
</div>
<div class='row'>
<section class='offset2 span8'>
<dl>
<dt about='jld:CompactTest' property='rdfs:label' typeof='rdfs:Class'>Compact Evaluation Test</dt>
<dd about='jld:CompactTest' property='rdfs:comment'><p>A <code>CompactTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-compact-Promise-any-input-JsonLdContext-context-JsonLdOptions-options">compact</a> method with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing a JSON-LD file in expanded form, context from <code>:input</code> (aliased as &quot;context&quot; in the test manifest) and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> MUST be compared using JSON object comparison with the processor output.</p>
</dd>
<dt about='jld:ExpandTest' property='rdfs:label' typeof='rdfs:Class'>Expand Evaluation Test</dt>
<dd about='jld:ExpandTest' property='rdfs:comment'><p>A <code>ExpandTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-expand-Promise-any-input-JsonLdOptions-options">expand</a> method with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing a JSON-LD file, and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> MUST be compared using JSON object comparison with the processor output.</p>
</dd>
<dt about='jld:FlattenTest' property='rdfs:label' typeof='rdfs:Class'>Flatten Evaluation Test</dt>
<dd about='jld:FlattenTest' property='rdfs:comment'><p>A <code>FlattenTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#widl-JsonLdProcessor-flatten-Promise-any-input-JsonLdContext-context-JsonLdOptions-options">flatten</a> method with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing a JSON-LD file, optional context from <code>:input</code> (aliased as &quot;context&quot; in the test manifest) and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> MUST be compared using JSON object comparison with the processor output.</p>
</dd>
<dt about='jld:FrameTest' property='rdfs:label' typeof='rdfs:Class'>Frame Evaluation Test</dt>
<dd about='jld:FrameTest' property='rdfs:comment'><p>A <code>FrameTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-framing/#widl-JsonLdProcessor-frame-void-object-or-object---or-IRI-input-object-or-IRI-frame-JsonLdCallback-callback-JsonLdOptions-options">frame</a> method with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing a JSON-LD file, frame from <code>:input</code> (aliased as &quot;frame&quot; in the test manifest) and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> MUST be compared using JSON object comparison with the processor output.</p>
</dd>
<dt about='jld:FromRDFTest' property='rdfs:label' typeof='rdfs:Class'>From RDF Evaluation Test</dt>
<dd about='jld:FromRDFTest' property='rdfs:comment'><p>A <code>FromRDFTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#rdf-to-object-conversion">RDF to Object Conversion</a> algorithm with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing an N-Quads file and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> MUST be compared using JSON object comparison with the processor output.</p>
</dd>
<dt about='jld:NegativeSyntaxTest' property='rdfs:label' typeof='rdfs:Class'>Negative Syntax Test</dt>
<dd about='jld:NegativeSyntaxTest' property='rdfs:comment'><p>A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action. Negative syntax tests are tests of which the result should be a parser error.</p>
</dd>
<dt about='jld:NegativeEvaluationTest' property='rdfs:label' typeof='rdfs:Class'>Positive Evaluation Test</dt>
<dd about='jld:NegativeEvaluationTest' property='rdfs:comment'><p>A Negative Evaluation test is successful when the result of processing the input file specified as <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) results in the error identified by the literal value of <code>mf:result</code> (aliased as &quot;expect&quot; in test manifest). The specifics of invoking test, including the interpretation of options (<code>:option</code>) and other input files are specified through another class.</p>
</dd>
<dt about='jld:PositiveEvaluationTest' property='rdfs:label' typeof='rdfs:Class'>Positive Evaluation Test</dt>
<dd about='jld:PositiveEvaluationTest' property='rdfs:comment'><p>A Positive Evaluation test is successful when the result of processing the input file specified as <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) exactly matches the output file specified as <code>mf:result</code> (aliased as &quot;expect&quot; in test manifest) using the comparison defined in another class. The specifics of invoking test, including the interpretation of options (<code>:option</code>) and other input files are specified through another class.</p>
</dd>
<dt about='jld:PositiveSyntaxTest' property='rdfs:label' typeof='rdfs:Class'>Positive Syntax Test</dt>
<dd about='jld:PositiveSyntaxTest' property='rdfs:comment'><p>A type of test specifically for syntax testing. Syntax tests are not required to have an associated result, only an action.</p>
</dd>
<dt about='jld:Option' property='rdfs:label' typeof='rdfs:Class'>Processor Options</dt>
<dd about='jld:Option' property='rdfs:comment'><p>Options passed to the test runner to affect invocation of the appropriate API method.</p>
</dd>
<dt about='jld:Test' property='rdfs:label' typeof='rdfs:Class'>Superclass of all JSON-LD tests</dt>
<dd about='jld:Test' property='rdfs:comment'><p>All JSON-LD tests have an input file referenced using <code>mf:action</code> (aliased as &quot;input&quot; in test manifest). Positive and Negative Evaluation Tests also have a result file referenced using <code>mf:result</code> (aliased as &quot;expect&quot; in test manifest). Other tests may take different inputs and options as defined for each test class. Tests should be run with the processingMode option set to &quot;json-ld-1.1&quot;, unless specified explicitly as a test option.</p>
</dd>
<dt about='jld:ToRDFTest' property='rdfs:label' typeof='rdfs:Class'>To RDF Evaluation Test</dt>
<dd about='jld:ToRDFTest' property='rdfs:comment'><p>A <code>ToRDFTest</code> modifies either a <code>PositiveEvaluationTest</code>, <code>NegativeEvaluationTest</code>, <code>PositiveSyntaxTest</code> or <code>NegativeSyntaxTest</code>. Tests are run using the <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#deserialize-json-ld-to-rdf-algorithm">Deserialize JSON-LD to RDF algorithm</a> with the input argument from <code>mf:action</code> (aliased as &quot;input&quot; in test manifest) referencing an JSON-LD file and optional options from <code>:option</code>. The expected results for a <code>PositiveEvaluationTest</code> are N-Quads serialized in lexographical order and MUST be compared either string comparison or Dataset as defined in <a href="http://www.w3.org/TR/rdf11-concepts/#section-dataset-isomorphism">RDF11-CONCEPTS</a>.</p>
</dd>
</dl>
</section>
</div>
<div class='row'>
<h2 class='span12' id='classes' style='text-align: center;'>
Test Case Properties
</h2>
</div>
<div class='row'>
<section class='offset2 span8'>
<dl>
<dt about='jld:httpLink' property='rdfs:label' typeof='rdf:Property'>HTTP link</dt>
<dd about='jld:httpLink'>
<span property='rdfs:comment'><p>An HTTP Link header to be added to the result of requesting the input file.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:httpStatus' property='rdfs:label' typeof='rdf:Property'>HTTP status</dt>
<dd about='jld:httpStatus'>
<span property='rdfs:comment'><p>The HTTP status code that must be returned when the input file is requested. This is typically used along with the <code>redirectTo</code> property.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:base' property='rdfs:label' typeof='rdf:Property'>base</dt>
<dd about='jld:base'>
<span property='rdfs:comment'><p>The base IRI to use when expanding or compacting the document. If set, this overrides the input document&#39;s IRI.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='rdfs:Resource'>rdfs:Resource</code>
</div>
</dd>
<dt about='jld:compactArrays' property='rdfs:label' typeof='rdf:Property'>compact arrays</dt>
<dd about='jld:compactArrays'>
<span property='rdfs:comment'><p>If set to <code>true</code>, the JSON-LD processor replaces arrays with just one element with that element during compaction. If set to false, all arrays will remain arrays even if they have just one element.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:compactToRelative' property='rdfs:label' typeof='rdf:Property'>compact to relative</dt>
<dd about='jld:compactToRelative'>
<span property='rdfs:comment'><p>If set to <code>false</code>, the JSON-LD processor will not attempt to compact using document-relative IRIs.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:contentType' property='rdfs:label' typeof='rdf:Property'>content type</dt>
<dd about='jld:contentType'>
<span property='rdfs:comment'><p>The HTTP Content-Type used for the input file, in case it is a non-registered type.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:expandContext' property='rdfs:label' typeof='rdf:Property'>expand context</dt>
<dd about='jld:expandContext'>
<span property='rdfs:comment'><p>A context that is used to initialize the active context when expanding a document.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='rdfs:Resource'>rdfs:Resource</code>
</div>
</dd>
<dt about='jld:input' property='rdfs:label' typeof='rdf:Property'>input</dt>
<dd about='jld:input'>
<span property='rdfs:comment'><p>Secondary input file</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Test'>jld:Test</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='rdfs:Resource'>rdfs:Resource</code>
</div>
</dd>
<dt about='jld:option' property='rdfs:label' typeof='rdf:Property'>option</dt>
<dd about='jld:option'>
<span property='rdfs:comment'><p>Options affecting processing</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Test'>jld:Test</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='jld:Option'>jld:Option</code>
</div>
</dd>
<dt about='jld:processingMode' property='rdfs:label' typeof='rdf:Property'>processing mode</dt>
<dd about='jld:processingMode'>
<span property='rdfs:comment'><p>If set to &quot;json-ld-1.1&quot;, the JSON-LD processor must produce exactly the same results as the algorithms defined in this specification. If set to another value, the JSON-LD processor is allowed to extend or modify the algorithms defined in this specification to enable application-specific optimizations. The definition of such optimizations is beyond the scope of this specification and thus not defined. Consequently, different implementations may implement different optimizations. Developers must not define modes beginning with json-ld as they are reserved for future versions of this specification.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:string'>xsd:string</code>
</div>
</dd>
<dt about='jld:produceGeneralizedRdf' property='rdfs:label' typeof='rdf:Property'>produce generalized RDF</dt>
<dd about='jld:produceGeneralizedRdf'>
<span property='rdfs:comment'><p>Unless the produce generalized RDF flag is set to true, RDF triples containing a blank node predicate are excluded from output.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:redirectTo' property='rdfs:label' typeof='rdf:Property'>redirect to</dt>
<dd about='jld:redirectTo'>
<span property='rdfs:comment'><p>The location of a URL for redirection. A request made of the input file must be redirected to the designated URL.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:specVersion' property='rdfs:label' typeof='rdf:Property'>spec version</dt>
<dd about='jld:specVersion'>
<span property='rdfs:comment'><p>Indicates the JSON-LD version to which the test applies, rather than the specific processing mode. Values are &quot;json-ld-1.0&quot;, and &quot;json-ld-1.1&quot;. If not set, the test is presumed to be valid for all versions of JSON-LD. In cases where results differ between spec versions for the same test, the test will have both a &quot;1.0&quot; and &quot;1.1&quot; version, for example.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:string'>xsd:string</code>
</div>
</dd>
<dt about='jld:useRdfType' property='rdfs:label' typeof='rdf:Property'>use RDF types</dt>
<dd about='jld:useRdfType'>
<span property='rdfs:comment'><p>If the <em>use rdf type</em> flag is set to <code>true</code>, statements with an <code>rdf:type</code> predicate will not use <code>@type</code>, but will be transformed as a normal property.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:useDocumentLoader' property='rdfs:label' typeof='rdf:Property'>use document loader</dt>
<dd about='jld:useDocumentLoader'>
<span property='rdfs:comment'><p>Test runners must implement a callback method with a method signature as defined in <a href="https://json-ld.org/spec/latest/json-ld-api/index.html#idl-def-LoadDocumentCallback">LoadDocumentCallback</a>. Specifying this option requires the test runner to provide this callback to the appropriate API method using the <code>documentLoader</code> option.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
<dt about='jld:useNativeTypes' property='rdfs:label' typeof='rdf:Property'>use native types</dt>
<dd about='jld:useNativeTypes'>
<span property='rdfs:comment'><p>If the <em>use native types</em> flag is set to <code>true</code>, RDF literals with a datatype IRI that equal <code>xsd:integer</code> or <code>xsd:double</code> are converted to a JSON numbers and RDF literals with a datatype IRI that equals <code>xsd:boolean</code> are converted to <code>true</code> or <code>false</code> based on their lexical form.</p>
</span>
<div>
<strong>
domain:
</strong>
<code property='rdfs:domain' resource='jld:Option'>jld:Option</code>
</div>
<div>
<strong>
range:
</strong>
<code property='rdfs:range' resource='xsd:boolean'>xsd:boolean</code>
</div>
</dd>
</dl>
</section>
</div>
</div>
<footer>
<span property='dc:publisher'>W3C Linked JSON Community Group</span>
</footer>
<script src='../static/js/bootstrap/bootstrap.js' type='text/javascript'></script>
</body>
</html>
